/*
 * @author WYK
 * 各模块的接口调用
 * Auth
 */

// URL列表
import base from '@/api/modules/auth/base';
// 封装过的axios实例
import ajax from '@/api/http.js';
// QS  序列化参数
import qs from 'qs';

// const host = base.mock;
// const host = base.dev
const host = base.prod;

const auth = {

  // 登录
  getLogin(params) {
    return ajax.post(`${host}/checkLogin`, qs.stringify(params));
  },

  // 获取图片
  getLoginInfo(params) {
    return ajax.post(`${host}/loginInfo`, qs.stringify(params));
  },

  // 修改密码
  getResetPassword(params) {
    return ajax.post(`${host}/user/updatePasswd`, qs.stringify(params));
  },

  // 是否需要验证码
  getNeedCode(params) {
    return ajax.post(`${host}/verificationCode`, qs.stringify(params));
  },

  // 获取验证码
  getCode(fn) {
    return new Promise(function(resolve, reject) {
      ajax.post(`${host}/getVerifiCode`, {}, {
        withCredentials: true,
        responseType: 'arraybuffer' // 或者responseType: 'blob'
      })
        .then(res => {
          return 'data:image/png;base64,' + btoa(
            new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), '')
          );
        })
        .then(data => {
          fn(data);
        });
    }).catch(function(reason) {
      console.log('Failed:', reason);
    });
  },

  // 获取验证码的内容
  getCodeContent(params) {
    return ajax.post(`${host}/loginAuthentication`, qs.stringify(params));
  }
};

export default auth;
